The present invention is directed to data processing systems, and more particularly to parallel processing which coordinates major system state change activities among multiple modules.
On-line transaction processing ("OLTP") has found a variety of commercial applications in today's industry such as, for example, assisting with financial transactions (e.g., coordinating information from bank ATMs), tracking data for the New York Stock Exchange, tracking billings for telephone companies, and tracking parts for manufacturing (e.g., automobile parts). Many of the commercial applications available for OLTP require elaborate protection of integrity of user data along with continuous availability to the OLTP applications for end users. For example, ATMs for banks must have excellent integrity (i.e., make a minimum of, if any, errors), and ATMs must be available to users for extended periods of time. ATM users would not tolerate mistakes associated with their transactions (e.g., a $500.00 deposit not being credited to a user's account). Moreover, ATMs are often preferably available to users 24 hours a day, seven days a week.
To achieve continuous availability in OLTP applications, users must be able to rely on supporting system software. Parallel processing (processing which utilizes process pairs) assists in allowing OLTP to quickly handle numerous individual transactions or small tasks which are distributed among multiple processors. A process pair involves two processes with the same set of instructions to execute. At any one time, one of the two processes (the primary) is performing all of the useful work, and occasionally sending messages to the other of the two processors (the backup) in order to update that processor's state. The second of the two processors, or backup processor, remains ready to assume the workload if the first of the two processors, or primary processor, fails.
Other parallel processing applications include maintaining and accessing large data bases for record-keeping and decision-making operations, or as media servers that provide an accessible store of information to many users. Parallel processing's particular advantage resides in the ability to handle large amounts of diverse data such as, for example, in decision making operations which may require searches of diverse information that can be scattered among a number of storage devices. Furthermore, a parallel processor media server application could be in an interactive service environment such as "movies-on-demand," that will call upon the parallel processor to provide a vast number of customers with access to a large reservoir of motion pictures kept on retrievable memory (e.g., disk storage devices). This latter application may well require the parallel processor to simultaneously service multiple requests by locating, selecting, and retrieving the requested motion pictures, and then forwarding the selections to the requesting customers.
While parallel processing increases OLTP capabilities, a technique is needed for coordinating major system state changes among multiple modules within process pairs.